home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / MATH1 / NEWDR.PAS < prev    next >
Pascal/Delphi Source File  |  1985-04-03  |  768b  |  39 lines

  1. program newdr;    { -> 243 }
  2. var    x,x2    : real;
  3.     alldone    : boolean;
  4.     error    : boolean;
  5.  
  6. external procedure cls;
  7.  
  8. procedure func(x: real;
  9.         var fx,dfx: real);
  10. begin
  11.   fx:=x*x-2.0;
  12.   dfx:=2.0*x
  13. end;    { func }
  14.  
  15. procedure newton(var x: real);
  16. const     tol    = 1.0E-6;
  17.  
  18. var    fx,dfx,dx,x1:    real;
  19.  
  20. begin    { newton }
  21.   repeat
  22.     x1:=x;
  23.     func(x,fx,dfx);
  24.     dx:=fx/dfx;
  25.     x:=x1-dx;
  26.     writeln('x=',x1,'  fx=',fx,'  dfx=',dfx);
  27.   until abs(dx)<=abs(tol*x)
  28. end;    { newton }
  29.  
  30. begin        { main program }
  31.   cls;
  32.   writeln;
  33.   x:=2.0;    { first guess }
  34.   newton(x);
  35.   writeln;
  36.   writeln(chr(7),'The solution is ',x);
  37.   writeln
  38. end.
  39.